package com.designpattern.createpattern.demo02;

/**
 * @Description: 工厂方法模式
 * 在这个例子中，PizzaFactory是工厂角色，它定义了创建披萨的抽象对象，
 * 而ApplePizzaFactory和BananaPizzaFactory是具体工厂，
 * 它们实现了创建不同披萨的逻辑。ApplePizza和BananaPizza是产品角色，
 * 代表不同类型的披萨。通过这种方式，如果我们要添加新的披萨类型，
 * 只需要创建一个新的披萨类和对应的披萨类工厂即可，而不需要修改现有的代码。
 */
public class Main {
    public static void main(String[] args) {
        PizzaFactory pizzaFactory = new ApplePizzaFactory();
//        Pizza pizza = pizzaFactory.createPizza("apple");
//        pizza.make();
        pizzaFactory.createPizza("apple").make();
        PizzaFactory bananaFactory = new BananaPizzaFactory();
        bananaFactory.createPizza("banana").make();
    }
}
